package com.etime.shuhuiyuan.services.role.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.etime.shuhuiyuan.dao.RoleDao;
import com.etime.shuhuiyuan.pojo.Role;
import com.etime.shuhuiyuan.services.role.interfaces.RoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * service层的实现类
 */
@Service
public class RoleServiceImpl implements RoleService {
    /**
     * 使用spring的ico容器自动注入对象实例
     */
    @Autowired
    private RoleDao roleDao;

    /**
     * 添加实例
     * @param role
     * @return
     */
    @Override
    public int insertRole(Role role) {
        return roleDao.insert(role);
    }

    /**
     * 修改角色（根据id修改角色）
     * @param role 参数中需要有角色id
     * @return
     */
    @Override
    public int updateRole(Role role) {
        return roleDao.updateById(role);
    }

    /**
     * 查询角色列表
     * @param role
     * @return
     */
    @Override
    public List<Role> selectRole(Role role) {
        QueryWrapper<Role> wrapper = new QueryWrapper<>();
        if(role!=null && role.getRolename()!=null && !role.getRolename().equalsIgnoreCase("")){
            wrapper.eq("rolename",role.getRolename());
        }
        if(role!=null && role.getRolestate()!=null && role.getRolestate()!=-1){
            wrapper.eq("rolestate",role.getRolestate());
        }
        return roleDao.selectList(wrapper);
    }

    /**
     * 分页查询列表
     * @param role
     * @param pagenumb
     * @param pagesize
     * @return
     */
    @Override
    public Page<Role> selectRoleByPage(Role role, long pagenumb, long pagesize) {
        //分页参数
        Page<Role> page = new Page<>(pagenumb,pagesize);
        //查询条件
        QueryWrapper<Role> wrapper = new QueryWrapper<>();
        if (role!=null && role.getRolename()!=null && !role.getRolename().equalsIgnoreCase("")){
            wrapper.like("rolename",role.getRolename());
        }
        if(role!=null && role.getRolestate()!=null && role.getRolestate()!=-1){
            wrapper.eq("rolestate",role.getRolestate());
        }
        return roleDao.selectPage(page,wrapper);
    }

    /**
     * 根据id查询一条记录
     * @param roleid
     * @return
     */
    @Override
    public Role selectRoleById(Integer roleid) {
        return roleDao.selectById(roleid);
    }
}